﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
using System.Net;

public partial class DatVeKetThuc : System.Web.UI.Page
{
    Controllers controller;
    protected void Page_Load(object sender, EventArgs e)
    {
        controller = new Controllers();
        if (
            Session["LoaiChuyenBay"] != null
            && Session["IDsanBayDi"] != null
            && Session["IDsanBayDen"] != null
            && Session["TensanBayDi"] != null
            && Session["TensanBayDen"] != null
            && Session["NgayDi"] != null
            && Session["NgayDen"] != null
            && Session["Adults"] != null
            && Session["MaCBDi"] != null
            && Session["CBDiDuocChon"] != null
            && Session["ListKH"] != null
            && Session["HangDi"] != null
            && Session["Children2-12"] !=null
            && Session["Childrenless2"] != null
            && Session["email"] != null)
        {
            if (!IsPostBack)
            {
                loadThongTin();
                if (Session["LoaiChuyenBay"].ToString().Equals("khu hoi"))
                {
                    Label13.Text = "Khứ hồi";
                }
                else
                {
                    Label13.Text = "Một chiều";
                }
                Label14.Visible = false;
            }
        }
        else
        {
            Response.Redirect("Home.aspx");
        }
    }

    protected void Button3_Click(object sender, EventArgs e)
    {
        Label14.Visible = true;
        List<KhachHang> listkh = new List<KhachHang>();
        listkh = (List<KhachHang>)Session["ListKH"];
        List<string> hang = new List<string>();
        int n = listkh.Count;
        for(int i = 0; i<n; i++)
        {
            hang.Add(Session["HangDi"].ToString());

        }
        string cbVe = "";
        if (Session["MaCBVe"] != null)
        {
            cbVe = Session["MaCBVe"].ToString();
        }

        DateTime ngayDi = DateTime.Parse(Session["NgayDi"].ToString());

        DateTime ngayVe = DateTime.Now;
        if(Session["LoaiChuyenBay"].ToString().Equals("khu hoi"))
        {       
            ngayVe = DateTime.Parse(Session["NgayDen"].ToString());
        }

        string kq1 = controller.DatVe(Session["MaCBDi"].ToString(), cbVe, listkh, hang, ngayDi, ngayVe);

        switch (kq1)
        {
            case "0": Label14.Text = "Đặt vé không thành công, có lỗi với chuyến bay đi";
                Label14.ForeColor = System.Drawing.Color.Red;
                return;
            case "1": Label14.Text = "Đặt vé không thành công, có lỗi với chuyến bay về";
                Label14.ForeColor = System.Drawing.Color.Red;
                return;
            case "2": Label14.Text = "Đặt vé không thành công, có lỗi với Danh sách khách hàng";
                Label14.ForeColor = System.Drawing.Color.Red;
                return;
            case "3": Label14.Text = "Đặt vé không thành công, có lỗi với 'Loại vé'.";
                Label14.ForeColor = System.Drawing.Color.Red;
                return;
            case "5": Label14.Text = "Đặt vé không thành công, có lỗi với insert data.";
                Label14.ForeColor = System.Drawing.Color.Red;
                return;
            case "": Label14.Text = "Đặt vé không thành công, lỗi không xác định";
                Label14.ForeColor = System.Drawing.Color.Red;
                return;
        }

        string bodyMail = "Mã đặt vé của quý khách là :" + kq1 + " .Cảm ơn quý khách đã sử dụng dịch vụ của chúng tôi. Chúc quý khách hài lòng với chuyến bay!";
        //gửi email
        SendEmailUsingGmail("SingaporeAirLinesDauTai@gmail.com", Session["email"].ToString(), "Mã đặt vé của quý khách từ SingaporeAirLinesDauTai", bodyMail, "SingaporeAirLinesDauTai123");
        Label14.Text = "Đặt vé thành công, vé của quý khách sẽ được gửi qua email. Cảm ơn quý khách đã sử dụng dịch vụ của chúng tôi. Chúc quý khách hài lòng với chuyến bay! ----" + kq1;
        Label14.ForeColor = System.Drawing.Color.Green;
        
    }
    protected void Button4_Click(object sender, EventArgs e)
    {
        Session.Remove("ListKH");
        Session.Remove("email");
        Response.Redirect("DatVeB3.aspx#divDatVeB");
    }


    private void loadThongTin()
    {
        List<ChuyenBayChon> listcbc = new List<ChuyenBayChon>();
        ChuyenBayChon cbc = new ChuyenBayChon();
        cbc = (ChuyenBayChon)Session["CBDiDuocChon"];
        listcbc.Add(cbc);
        GridView1.DataSource = listcbc;
        GridView1.DataBind();

        List<KhachHang> listkh = new List<KhachHang>();
        listkh = (List<KhachHang>)Session["ListKH"];
        KhachHang kh = listkh[0];
        Label1.Text = kh.HoTenKhachHang;
        Label2.Text = kh.Email;
        Label3.Text = kh.LoaiGiayTo;
        Label4.Text = kh.SoThe;
        
        int adult = int.Parse(Session["Adults"].ToString());
        int child212 = int.Parse(Session["Children2-12"].ToString());
        int child2 = int.Parse(Session["Childrenless2"].ToString());
        Label5.Text = Session["HangDi"].ToString();
        
        int khuhoi = 1;
        if (Session["LoaiChuyenBay"].ToString().Equals("khu hoi"))
        {
            khuhoi = 2;
        }
        Label6.Text = (adult*khuhoi).ToString();
        Label8.Text = (child212*khuhoi).ToString();
        Label10.Text = (child2*khuhoi).ToString();
        
        Label7.Text = (adult*cbc.GiaVe*khuhoi).ToString();
        Label9.Text = (0.8 * child212 * cbc.GiaVe * khuhoi).ToString();
        Label11.Text = (0.5 * child2 * cbc.GiaVe * khuhoi).ToString();
        Label12.Text = ((adult + (0.8 * child212) + (0.5 * child2)) * cbc.GiaVe * khuhoi).ToString();
    }

    private static bool SendEmailUsingGmail(string fromEmailAddress, string toEmailAddress,
        string subject, string messageBody, string gmailPassword)
    {
        try
        {
            SmtpClient smtp = new SmtpClient();
            smtp.Credentials = new NetworkCredential(fromEmailAddress, gmailPassword);
            smtp.Port = 587;
            smtp.Host = "smtp.gmail.com";
            smtp.EnableSsl = true;

            MailMessage message = new MailMessage();
            message.From = new MailAddress(fromEmailAddress);
            message.To.Add(toEmailAddress);
            message.Subject = subject;
            message.Body = messageBody;
            smtp.Send(message);
            return true;
        }
        catch
        {
            return false;
        }
    }

}